package thread;

/**
 * sleep方法要求必须处理中断异常。（Thread还提供了其他会导致线程阻塞的方法，很多都要求处理这个异常，情况都一样）
 * 当一个线程调用sleep方法处于睡眠阻塞的过程中，
 * 此时该线程的interrupt方法被调用时，会中断这个阻塞的过程，此时该方法会抛出中断异常
 */
public class SleepDemo2 {
    public static void main(String[] args) {
        Thread lin = new Thread(){
            public void run(){
                System.out.println("睡一会吧。。");
                try {
                    Thread.sleep(100000);
                } catch (InterruptedException e) {
                    System.out.println("干嘛呢！都破了相了！");
                }
                System.out.println("lin醒了");
            }
        };
        Thread huang = new Thread(){
            public void run(){
                System.out.println("黄：大锤80，小锤40，开始砸墙！");
                for(int i=0;i<5;i++){
                    System.out.println("80!");
                    try {
                        Thread.sleep(1000);
                    } catch (InterruptedException e) {
                    }
                }
                System.out.println("咣当");
                System.out.println("huang:搞定了！");
                lin.interrupt();//中断lin线程的睡眠阻塞
            }
        };
        lin.start();
        huang.start();
    }
}
